#include <iostream>
#include "Token.h"

TToken::TToken()
{

}

TToken::~TToken()
{

}

TToken::TToken(int a)
{
	token = new char [10];
  	type = SimboloComposto;
	strcpy (token, "-- vazio --");
}

TToken::TToken(char *a, Token b)
{
	token = new char [10];
	type = b;
	strcpy (token, a);
}

//encapsula a comparacao da string do token
bool TToken::operator== (char* simb)
{
	/*std::cout << simb << " == ";
	std::cout << token << ": ";
	std::cout << strcmp (token, simb) << " \n " ;*/
	
	if ( strcmp (token, simb) == 0 ) return true;
	else return false;
}

bool TToken::isTipoVariavel()
{
    if (strcmp( token, "integer" ) == 0 || strcmp( token, "boolean" ) == 0)
        return true;
    return false;
}

//verifica se o token eh numero
bool TToken::isNumero ()
{
	if ( type == Inteiro ) return true;
	else return false;
}

// verifica se o token eh identificador
bool TToken::isIdentificador()
{
	if ( type == Identificador ) return true;
	else return false;
}

bool TToken::isTipo()
{
	if ( type == Booleano || type == Inteiro ) return true;
	else return false;
}
